The field of the invention relates generally to establishing collections of collaborating networked capabilities, and more specifically, to methods and systems for capability-based system collaboration to provide end-to-end functionality that is not feasible on a single system platform.
There are many existing software systems, for example, Common Object Request Broker Architecture (CORBA), Enterprise Java Beans (EJB), and Distributed Component Object Model (DCOM), to name a few, that allow software services on different platforms to identify, discover, and collaborate with services on other platforms.
However, there are disadvantages and limitations with these existing software systems in that the range of capabilities supported by each of these systems is limited to those within a single discovery domain. In other words, configuration of collections of capabilities are limited to instantiating new capabilities and connections (e.g. CORBA Component Model (CCM) Assemblies, CORBA Trader Service, CORBA Naming Service, and CORBA Interface Repositories), and not configuring ad hoc collections of capabilities from preexisting capabilities executing independently on platforms.
In addition to these limitations, there are disadvantages and limitations with these existing software systems in that they do not provide centralized establishment and management of full end-to-end functionality chains, possibly including support for reconfiguration of the end-to-end functionality chains in the presence of faults.
Beyond these standard software systems, there is at least one known application that allows platforms to identify a single “level of interoperability” per platform and establish collaborations between platforms based on that single definition of combined available functionality.
There are disadvantages with this “level of interoperability” approach in that multiple unrelated capabilities cannot be hosted on a single platform and that capabilities cannot be identified and incorporated into end-to-end functionality chains without first identifying platforms and platform roles. In addition, only a linear chain of capabilities culminating in a single “level of interoperability” can be identified, located, and configured per system platform.
The above described solutions do not, however, solve the problem of establishing collections of collaborating networked capabilities to provide end-to-end functionality which is infeasible on a single system platform.